//
// Created by 下次一定 on 2021/9/14.
//

/*
 * 容器
 * vector : 变长数组  倍增的思想
 *         size()
 *         empty()
 *         clear()  清空
 *         front()/back()
 *         push_back()/pop_back()
 *         begin()/end()
 * pair<int,int>  二元组
 *         first
 *         second
 *         支持比较运算  按照 first  second
 * string : 字符串  substr()   c_str()
 * queue 队列:
 *         push()   队尾插入元素
 *         front()  返回队头元素
 *         back()   返回队尾元素
 *         pop()     弹出队头元素
 * priority_queue   : 优先队列   pup()   top()  pop()  默认是大根堆
 * stack  栈
 * deque : 双端队列  效率比较低
 *
 * set  map    multiset   multimap  : 基于平衡二叉树(红黑树)实现的 本质上维护一个有序序列
 *      set/multiset:
 *         insert() 插入一个数
 *         find()   查找一个数
 *         count()   返回一个数的个数
 *         erase()
 *              (1) 删除一所有为x的数  o(k + logn)
 *              (2) 输入迭代器 删除迭代器
 *         lower_bound()/upper_bound()
 *              lower_bound()  返回大于等于x的最小的数
 *              upper_bound()  返回小于等于x的最大的数
 *
 *       map/multiset:
 *          erase(): 输入参数是pair:
 * bitset :
 * */

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<vector>
#include <queue>
#include <set>
#include <map>


using namespace std;

int main() {
    // vector 定义
    vector<int> a(10, 3);
    cout << a.size() << endl;
    a.empty();

    pair<int, int> p;
    p = make_pair(10, 10);
    p = {10, 10};


    string str = "ahmubei";
    cout << str.substr(0, 2) << endl;

    //小根堆
    //priority_queue<int, vector<int>, greater<int>> heap1;
    //大根堆
    priority_queue<int> heap2;


    set<int> set;
    //可以有重复的元素
    multiset<int> set2;


    map<string, int> map;
    map["mubei"] = 10;
    cout << map["mubei"] << endl;


}
